"""
回文数

https://leetcode.cn/problems/palindrome-number/

给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。

回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。

例如，121 是回文，而 123 不是。
"""


class Solution:

    def isPalindrome(self, x: int) -> bool:
        assert isinstance(x, int)
        if x < 0:
            return False
        xstr = str(x)
        xlen = len(xstr)
        if 1 == xlen:
            return True
        xl2r = xstr[:xlen // 2 + 1]
        xr2l = xstr[-1:-(xlen // 2)-2:-1]
        if xl2r == xr2l:
            return True
        else:
            return False


if '__main__' == __name__:

    obj = Solution()
    test_case = [-1, 1, 0, 123, 121, 1222, 1221, 98789, 98779, 123456, 123321, -121, -1221]
    for x in test_case:
        print(x, obj.isPalindrome(x))
